package calculadorfpa.modelo;

import org.apache.commons.beanutils.BeanUtils;



/**
 * @author TECBMBKD
 * @version 1.0
 * @created 19-jun-2011 14:18:06
 */
public abstract class Funcao implements Cloneable {

	private int id;
	private String nome;
	private int tipoDados;

	public Funcao(){

	}

	public void finalize() throws Throwable {

	}

	public abstract int obterComplexidade();

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getTipoDados() {
        return tipoDados;
    }

    public void setTipoDados(int tipoDados) {
        this.tipoDados = tipoDados;
    }

    @Override
    public boolean equals(Object o) {
        if(this.getClass().equals(o.getClass())) {
                return this.getNome().equalsIgnoreCase(((Funcao)o).getNome());
        }
        return false;
    }
    
    public Object clone(){
        try {
            Funcao copiaFuncao = (Funcao) BeanUtils.cloneBean(this);     
            return copiaFuncao;
        }catch(Exception e) {
            e.printStackTrace();;
        }
        return null;
    }
        
}